<!-- HTML header for doxygen 1.8.9.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
<title>Compute Library: ICLArray&lt; T &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Compute Library
   &#160;<span id="projectnumber">18.05</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.xhtml"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.xhtml"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.xhtml"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.xhtml"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
      <li><a href="classes.xhtml"><span>Data&#160;Structure&#160;Index</span></a></li>
      <li><a href="inherits.xhtml"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.xhtml"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classarm__compute_1_1_i_c_l_array.xhtml','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">ICLArray&lt; T &gt; Class Template Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>Interface for OpenCL <a class="el" href="classarm__compute_1_1_array.xhtml" title="Basic implementation of the IArray interface which allocates a static number of T values...">Array</a>.  
 <a href="classarm__compute_1_1_i_c_l_array.xhtml#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_i_c_l_array_8h_source.xhtml">ICLArray.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for ICLArray&lt; T &gt;:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classarm__compute_1_1_i_c_l_array__coll__graph.svg" width="123" height="112"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.xhtml">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a52adc23eae121bce4ce2f3febaf77566"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml#a52adc23eae121bce4ce2f3febaf77566">ICLArray</a> (size_t <a class="el" href="classarm__compute_1_1_i_array.xhtml#a2ff0fb106d58091d2b4363e808f200a3">max_num_values</a>)</td></tr>
<tr class="memdesc:a52adc23eae121bce4ce2f3febaf77566"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a52adc23eae121bce4ce2f3febaf77566">More...</a><br /></td></tr>
<tr class="separator:a52adc23eae121bce4ce2f3febaf77566"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cf073a23250bc74f0481a2747245e09"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml#a0cf073a23250bc74f0481a2747245e09">ICLArray</a> (const <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a> &amp;)=delete</td></tr>
<tr class="memdesc:a0cf073a23250bc74f0481a2747245e09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prevent instances of this class from being copy constructed.  <a href="#a0cf073a23250bc74f0481a2747245e09">More...</a><br /></td></tr>
<tr class="separator:a0cf073a23250bc74f0481a2747245e09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefdb6cfe839aa0835406d5adcd37de5b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml#aefdb6cfe839aa0835406d5adcd37de5b">operator=</a> (const <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a> &amp;)=delete</td></tr>
<tr class="memdesc:aefdb6cfe839aa0835406d5adcd37de5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prevent instances of this class from being copied.  <a href="#aefdb6cfe839aa0835406d5adcd37de5b">More...</a><br /></td></tr>
<tr class="separator:aefdb6cfe839aa0835406d5adcd37de5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2737e23210ec0453be088d5069fe2c48"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml#a2737e23210ec0453be088d5069fe2c48">ICLArray</a> (<a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:a2737e23210ec0453be088d5069fe2c48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow instances of this class to be move constructed.  <a href="#a2737e23210ec0453be088d5069fe2c48">More...</a><br /></td></tr>
<tr class="separator:a2737e23210ec0453be088d5069fe2c48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23914bc8fc4d9bb6d4c58f8c0c399c58"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml#a23914bc8fc4d9bb6d4c58f8c0c399c58">operator=</a> (<a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:a23914bc8fc4d9bb6d4c58f8c0c399c58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow instances of this class to be moved.  <a href="#a23914bc8fc4d9bb6d4c58f8c0c399c58">More...</a><br /></td></tr>
<tr class="separator:a23914bc8fc4d9bb6d4c58f8c0c399c58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c95f444049eea7c7d14f6fd57ef40a1"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml#a0c95f444049eea7c7d14f6fd57ef40a1">~ICLArray</a> ()=default</td></tr>
<tr class="memdesc:a0c95f444049eea7c7d14f6fd57ef40a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default virtual destructor.  <a href="#a0c95f444049eea7c7d14f6fd57ef40a1">More...</a><br /></td></tr>
<tr class="separator:a0c95f444049eea7c7d14f6fd57ef40a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fb4c50755a0ef424652246838ed91a6"><td class="memItemLeft" align="right" valign="top">virtual const cl::Buffer &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml#a1fb4c50755a0ef424652246838ed91a6">cl_buffer</a> () const =0</td></tr>
<tr class="memdesc:a1fb4c50755a0ef424652246838ed91a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to be implemented by the child class to return a reference to the OpenCL buffer containing the array's data.  <a href="#a1fb4c50755a0ef424652246838ed91a6">More...</a><br /></td></tr>
<tr class="separator:a1fb4c50755a0ef424652246838ed91a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0abc7a5c0d172947f0e6a0c0dde3df0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml#ac0abc7a5c0d172947f0e6a0c0dde3df0">map</a> (cl::CommandQueue &amp;q, bool blocking=true)</td></tr>
<tr class="memdesc:ac0abc7a5c0d172947f0e6a0c0dde3df0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enqueue a map operation of the allocated buffer on the given queue.  <a href="#ac0abc7a5c0d172947f0e6a0c0dde3df0">More...</a><br /></td></tr>
<tr class="separator:ac0abc7a5c0d172947f0e6a0c0dde3df0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af974a2360069c2ef8df4496d00e4f6cc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml#af974a2360069c2ef8df4496d00e4f6cc">unmap</a> (cl::CommandQueue &amp;q)</td></tr>
<tr class="memdesc:af974a2360069c2ef8df4496d00e4f6cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enqueue an unmap operation of the allocated and mapped buffer on the given queue.  <a href="#af974a2360069c2ef8df4496d00e4f6cc">More...</a><br /></td></tr>
<tr class="separator:af974a2360069c2ef8df4496d00e4f6cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46fdef12397c4404e7706cba3568b42d"><td class="memItemLeft" align="right" valign="top">T *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml#a46fdef12397c4404e7706cba3568b42d">buffer</a> () const override</td></tr>
<tr class="memdesc:a46fdef12397c4404e7706cba3568b42d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the first element of the array.  <a href="#a46fdef12397c4404e7706cba3568b42d">More...</a><br /></td></tr>
<tr class="separator:a46fdef12397c4404e7706cba3568b42d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classarm__compute_1_1_i_array"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarm__compute_1_1_i_array')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray&lt; T &gt;</a></td></tr>
<tr class="memitem:a409cec620a7e56a535b079a0fe37695a inherit pub_methods_classarm__compute_1_1_i_array"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#a409cec620a7e56a535b079a0fe37695a">IArray</a> ()</td></tr>
<tr class="memdesc:a409cec620a7e56a535b079a0fe37695a inherit pub_methods_classarm__compute_1_1_i_array"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor.  <a href="#a409cec620a7e56a535b079a0fe37695a">More...</a><br /></td></tr>
<tr class="separator:a409cec620a7e56a535b079a0fe37695a inherit pub_methods_classarm__compute_1_1_i_array"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ddd3791f151a0ad74b270776ff3726c inherit pub_methods_classarm__compute_1_1_i_array"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#a7ddd3791f151a0ad74b270776ff3726c">IArray</a> (size_t <a class="el" href="classarm__compute_1_1_i_array.xhtml#a2ff0fb106d58091d2b4363e808f200a3">max_num_values</a>)</td></tr>
<tr class="memdesc:a7ddd3791f151a0ad74b270776ff3726c inherit pub_methods_classarm__compute_1_1_i_array"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor: initializes an array which can contain up to max_num_points values.  <a href="#a7ddd3791f151a0ad74b270776ff3726c">More...</a><br /></td></tr>
<tr class="separator:a7ddd3791f151a0ad74b270776ff3726c inherit pub_methods_classarm__compute_1_1_i_array"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ff0fb106d58091d2b4363e808f200a3 inherit pub_methods_classarm__compute_1_1_i_array"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#a2ff0fb106d58091d2b4363e808f200a3">max_num_values</a> () const </td></tr>
<tr class="memdesc:a2ff0fb106d58091d2b4363e808f200a3 inherit pub_methods_classarm__compute_1_1_i_array"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of values which can be stored in this array.  <a href="#a2ff0fb106d58091d2b4363e808f200a3">More...</a><br /></td></tr>
<tr class="separator:a2ff0fb106d58091d2b4363e808f200a3 inherit pub_methods_classarm__compute_1_1_i_array"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acaeb87c4bcccaf15bb25bd2c8e44658a inherit pub_methods_classarm__compute_1_1_i_array"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#acaeb87c4bcccaf15bb25bd2c8e44658a">~IArray</a> ()=default</td></tr>
<tr class="memdesc:acaeb87c4bcccaf15bb25bd2c8e44658a inherit pub_methods_classarm__compute_1_1_i_array"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default virtual destructor.  <a href="#acaeb87c4bcccaf15bb25bd2c8e44658a">More...</a><br /></td></tr>
<tr class="separator:acaeb87c4bcccaf15bb25bd2c8e44658a inherit pub_methods_classarm__compute_1_1_i_array"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6dc031c18a14371984493b25a4230f59 inherit pub_methods_classarm__compute_1_1_i_array"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#a6dc031c18a14371984493b25a4230f59">num_values</a> () const </td></tr>
<tr class="memdesc:a6dc031c18a14371984493b25a4230f59 inherit pub_methods_classarm__compute_1_1_i_array"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of values currently stored in the array.  <a href="#a6dc031c18a14371984493b25a4230f59">More...</a><br /></td></tr>
<tr class="separator:a6dc031c18a14371984493b25a4230f59 inherit pub_methods_classarm__compute_1_1_i_array"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9031bfcabdaae3ac3e6e349446e282ff inherit pub_methods_classarm__compute_1_1_i_array"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#a9031bfcabdaae3ac3e6e349446e282ff">push_back</a> (const T &amp;val)</td></tr>
<tr class="memdesc:a9031bfcabdaae3ac3e6e349446e282ff inherit pub_methods_classarm__compute_1_1_i_array"><td class="mdescLeft">&#160;</td><td class="mdescRight">Append the passed argument to the end of the array if there is room.  <a href="#a9031bfcabdaae3ac3e6e349446e282ff">More...</a><br /></td></tr>
<tr class="separator:a9031bfcabdaae3ac3e6e349446e282ff inherit pub_methods_classarm__compute_1_1_i_array"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_classarm__compute_1_1_i_array"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#ac8bb3912a3ce86b15842e79d0b421204">clear</a> ()</td></tr>
<tr class="memdesc:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_classarm__compute_1_1_i_array"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear all the points from the array.  <a href="#ac8bb3912a3ce86b15842e79d0b421204">More...</a><br /></td></tr>
<tr class="separator:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_classarm__compute_1_1_i_array"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd912c5902331232c8a806fcb2d6eaad inherit pub_methods_classarm__compute_1_1_i_array"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#afd912c5902331232c8a806fcb2d6eaad">overflow</a> () const </td></tr>
<tr class="memdesc:afd912c5902331232c8a806fcb2d6eaad inherit pub_methods_classarm__compute_1_1_i_array"><td class="mdescLeft">&#160;</td><td class="mdescRight">Did we lose some values because the array is too small?  <a href="#afd912c5902331232c8a806fcb2d6eaad">More...</a><br /></td></tr>
<tr class="separator:afd912c5902331232c8a806fcb2d6eaad inherit pub_methods_classarm__compute_1_1_i_array"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a861d8aa0fbeb6a0a33ec8d556b7e8657 inherit pub_methods_classarm__compute_1_1_i_array"><td class="memItemLeft" align="right" valign="top">virtual T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#a861d8aa0fbeb6a0a33ec8d556b7e8657">at</a> (size_t index) const </td></tr>
<tr class="memdesc:a861d8aa0fbeb6a0a33ec8d556b7e8657 inherit pub_methods_classarm__compute_1_1_i_array"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to the element of the array located at the given index.  <a href="#a861d8aa0fbeb6a0a33ec8d556b7e8657">More...</a><br /></td></tr>
<tr class="separator:a861d8aa0fbeb6a0a33ec8d556b7e8657 inherit pub_methods_classarm__compute_1_1_i_array"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae21b0e95ded2dcfb5e62848ea0193828 inherit pub_methods_classarm__compute_1_1_i_array"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#ae21b0e95ded2dcfb5e62848ea0193828">resize</a> (size_t num)</td></tr>
<tr class="memdesc:ae21b0e95ded2dcfb5e62848ea0193828 inherit pub_methods_classarm__compute_1_1_i_array"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resizes the array to contain "num" elements.  <a href="#ae21b0e95ded2dcfb5e62848ea0193828">More...</a><br /></td></tr>
<tr class="separator:ae21b0e95ded2dcfb5e62848ea0193828 inherit pub_methods_classarm__compute_1_1_i_array"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class T&gt;<br />
class arm_compute::ICLArray&lt; T &gt;</h3>

<p>Interface for OpenCL <a class="el" href="classarm__compute_1_1_array.xhtml" title="Basic implementation of the IArray interface which allocates a static number of T values...">Array</a>. </p>

<p>Definition at line <a class="el" href="_i_c_l_array_8h_source.xhtml#l00035">35</a> of file <a class="el" href="_i_c_l_array_8h_source.xhtml">ICLArray.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a52adc23eae121bce4ce2f3febaf77566"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a> </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>max_num_values</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">max_num_values</td><td>Maximum size of the array. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_i_c_l_array_8h_source.xhtml#l00043">43</a> of file <a class="el" href="_i_c_l_array_8h_source.xhtml">ICLArray.h</a>.</p>

<p>References <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml#a1fb4c50755a0ef424652246838ed91a6">ICLArray&lt; T &gt;::cl_buffer()</a>, <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml#aefdb6cfe839aa0835406d5adcd37de5b">ICLArray&lt; T &gt;::operator=()</a>, and <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml#a0c95f444049eea7c7d14f6fd57ef40a1">ICLArray&lt; T &gt;::~ICLArray()</a>.</p>
<div class="fragment"><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        : IArray&lt;T&gt;(<a class="code" href="classarm__compute_1_1_i_array.xhtml#a2ff0fb106d58091d2b4363e808f200a3">max_num_values</a>), _mapping(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    {</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    }</div><div class="ttc" id="classarm__compute_1_1_i_array_xhtml_a2ff0fb106d58091d2b4363e808f200a3"><div class="ttname"><a href="classarm__compute_1_1_i_array.xhtml#a2ff0fb106d58091d2b4363e808f200a3">arm_compute::IArray::max_num_values</a></div><div class="ttdeci">size_t max_num_values() const </div><div class="ttdoc">Maximum number of values which can be stored in this array. </div><div class="ttdef"><b>Definition:</b> <a href="_i_array_8h_source.xhtml#l00059">IArray.h:59</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a0cf073a23250bc74f0481a2747245e09"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt; T &gt; &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Prevent instances of this class from being copy constructed. </p>

</div>
</div>
<a class="anchor" id="a2737e23210ec0453be088d5069fe2c48"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt; T &gt; &amp;&amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Allow instances of this class to be move constructed. </p>

</div>
</div>
<a class="anchor" id="a0c95f444049eea7c7d14f6fd57ef40a1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual ~<a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">default</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Default virtual destructor. </p>

<p>Referenced by <a class="el" href="_i_c_l_array_8h_source.xhtml#l00043">ICLArray&lt; T &gt;::ICLArray()</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a46fdef12397c4404e7706cba3568b42d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">T* buffer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Pointer to the first element of the array. </p>
<p>Other elements of the array can be accessed using <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml#a46fdef12397c4404e7706cba3568b42d" title="Pointer to the first element of the array. ">buffer()</a>[idx] for 0 &lt;= idx &lt; num_poins().</p>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the first element of the array </dd></dl>

<p>Implements <a class="el" href="classarm__compute_1_1_i_array.xhtml#a4b55468220c2029e7ee1594e34b2b21f">IArray&lt; T &gt;</a>.</p>

<p>Definition at line <a class="el" href="_i_c_l_array_8h_source.xhtml#l00090">90</a> of file <a class="el" href="_i_c_l_array_8h_source.xhtml">ICLArray.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    {</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span>T *<span class="keyword">&gt;</span>(_mapping);</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    }</div></div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a1fb4c50755a0ef424652246838ed91a6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const cl::Buffer&amp; cl_buffer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Interface to be implemented by the child class to return a reference to the OpenCL buffer containing the array's data. </p>
<dl class="section return"><dt>Returns</dt><dd>A reference to an OpenCL buffer containing the array's data. </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_c_l_array.xhtml#afd44a3d7dad6d984b1b87bc9f1b4fa02">CLArray&lt; T &gt;</a>.</p>

<p>Referenced by <a class="el" href="_i_c_l_kernel_8h_source.xhtml#l00315">ICLKernel::add_array_argument()</a>, and <a class="el" href="_i_c_l_array_8h_source.xhtml#l00043">ICLArray&lt; T &gt;::ICLArray()</a>.</p>

</div>
</div>
<a class="anchor" id="ac0abc7a5c0d172947f0e6a0c0dde3df0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void map </td>
          <td>(</td>
          <td class="paramtype">cl::CommandQueue &amp;&#160;</td>
          <td class="paramname"><em>q</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>blocking</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Enqueue a map operation of the allocated buffer on the given queue. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">q</td><td>The CL command queue to use for the mapping operation. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">blocking</td><td>If true, then the mapping will be ready to use by the time this method returns, else it is the caller's responsibility to flush the queue and wait for the mapping operation to have completed before using the returned mapping pointer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The mapping address. </dd></dl>

<p>Definition at line <a class="el" href="_i_c_l_array_8h_source.xhtml#l00072">72</a> of file <a class="el" href="_i_c_l_array_8h_source.xhtml">ICLArray.h</a>.</p>

<p>Referenced by <a class="el" href="_c_l_array_8h_source.xhtml#l00067">CLArray&lt; T &gt;::map()</a>.</p>
<div class="fragment"><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    {</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        _mapping = do_map(q, blocking);</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    }</div></div><!-- fragment -->
</div>
</div>
<a class="anchor" id="aefdb6cfe839aa0835406d5adcd37de5b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&amp; operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt; T &gt; &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Prevent instances of this class from being copied. </p>

<p>Referenced by <a class="el" href="_i_c_l_array_8h_source.xhtml#l00043">ICLArray&lt; T &gt;::ICLArray()</a>.</p>

</div>
</div>
<a class="anchor" id="a23914bc8fc4d9bb6d4c58f8c0c399c58"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&amp; operator= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a>&lt; T &gt; &amp;&amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Allow instances of this class to be moved. </p>

</div>
</div>
<a class="anchor" id="af974a2360069c2ef8df4496d00e4f6cc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void unmap </td>
          <td>(</td>
          <td class="paramtype">cl::CommandQueue &amp;&#160;</td>
          <td class="paramname"><em>q</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Enqueue an unmap operation of the allocated and mapped buffer on the given queue. </p>
<dl class="section note"><dt>Note</dt><dd>This method simply enqueues the unmap operation, it is the caller's responsibility to flush the queue and make sure the unmap is finished before the memory is accessed by the device.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">q</td><td>The CL command queue to use for the mapping operation. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_i_c_l_array_8h_source.xhtml#l00083">83</a> of file <a class="el" href="_i_c_l_array_8h_source.xhtml">ICLArray.h</a>.</p>

<p>Referenced by <a class="el" href="_c_l_array_8h_source.xhtml#l00077">CLArray&lt; T &gt;::unmap()</a>.</p>
<div class="fragment"><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    {</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        do_unmap(q, _mapping);</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        _mapping = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    }</div></div><!-- fragment -->
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>arm_compute/core/CL/<a class="el" href="_i_c_l_array_8h_source.xhtml">ICLArray.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespacearm__compute.xhtml">arm_compute</a></li><li class="navelem"><a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml">ICLArray</a></li>
    <li class="footer">Generated on Wed May 23 2018 11:36:41 for Compute Library by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
